1. Field of the Invention
The present invention relates in general to computer controlled data storage systems, and in particular to the automatic management of I/O buffers within a data storage subsystem. Still more particularly, the present invention relates to a system and method of automatically allocating and managing I/O buffers for a data processing system that keys off the intended record access of the data by the end user or application specified processing intent.
2. Description of the Related Art
Direct access storage devices are devices that allow direct retrieval of a record by supplying an access method an I/O request with an address or a key that can be translated into an exact location on a disk in the storage device. The term access method is used to describe the software designed to access records stored on the peripheral device such as the disk. One popular and widely used access method for direct access storage devices is the virtual storage access method or VSAM. VSAM's popularity has been based on its capabilities for insertion of records, recovery, restart and overall performance. VSAM files have been around for several decades and are widely found within data centers.
Data centers, applications and computer users all desire optimum performance from their data storage systems. Where before it might have been acceptable to wait long periods of time for data operations between the user or application and the data storage system to complete, users today do not tolerate noticeably poor performance. The goal of the data storage system designer is to make the system appear as quick and responsive as possible.
The single most important factor influencing VSAM performance is I/O buffering. Most data storage systems today use buffers to page data into and out of auxiliary storage. The buffers are located in a faster memory area such as main storage. Using the virtual storage access method to read data to and write data from auxiliary storage, the user or application program has heretofore had to manually manage the allocation and size of the I/O buffers. To this end, the user has to know the size and control intervals of the VSAM file, the number of data buffers to be allocated, the number of index buffers to be allocated, the amount of storage area available for all buffers and the type of access (random or sequential) to take place. As can readily be imagined, this approach is problematic as it is cumbersome, imprecise and inefficient. For example, the application may suffer poor performance if the I/O buffers are under allocated, while the system may be burdened with excessive I/Os if the buffers are over allocated. The user or application developer thus far has been burdened with a need to understand the details of the underlying access method to the data and have to make decisions of sizing and techniques for buffering to provide the most efficient access.
There have been some attempts in the prior art to automate the allocation and management of I/O buffers within a data storage system. For example, U.S. Pat. No. 5,524,214 issued to Kurihara describes a dynamic buffer change system for an information processing system where a user can request to change a setting for the buffer areas of a class of data. A change controller compares the current setting with the requested setting. If a discrepancy is found, the buffer area setting means changes the setting of the buffer area according to the requested setting during operation of the information handling system. The setting for the buffer areas includes the size and number of areas.
U.S. Pat. No. 5,491,810 describes an automated data storage space allocation system that compares a list of data set parameters with a listing of characteristics associated with each data storage device whenever a processor attempts to store that particular data set. If the entire list of data set parameters is matched, the data set is stored in the first data storage device. If the entire list is not matched the system selects a data storage device that optimally satisfies the data set parameter list.
Although the aforementioned approaches have made some progress in the automation of I/O buffer management, there are still some requirements of user intervention, by either the definition of the buffer parameters or data set parameters. It can be seen that there is a need for an automated buffer management system that automatically allocates the size and number of buffers for a specified application processing intent. It can further be seen that the automated buffer management system should be dynamic enough to optimize the buffer management technique based on the intended record access to the data. It can also be seen that there is a need for an automated buffer management system that keeps a historical record of data access by application and which can improve on the buffer allocation method by analysis of past inefficiencies.